home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #4 / Amiga Plus CD - 2000 - No. 4.iso / Tools / WWW / CManager / Docs / Developer / CManager.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-27  |  6.6 KB  |  240 lines

  1. #ifndef CMANAGER_H
  2. #define CMANAGER_H
  3.  
  4. /*
  5.     $VER: CManager.h 1.7 (14.9.99) ©1999 by Simone Tellini
  6. */
  7.  
  8. #ifndef MAKE_ID
  9. #define MAKE_ID(a,b,c,d)    ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  10. #endif
  11.  
  12.  
  13. #define CME_GROUP       0
  14. #define CME_USER        1
  15. #define CME_WWW         2
  16. #define CME_FTP         3
  17. #define CME_CHAT        4
  18. #define CME_TELNET      5
  19.  
  20. #define CME_LIST        253
  21. #define CME_IMAGE       254
  22. #define CME_SECTION     255
  23.  
  24. struct CMGroup {
  25.         struct CMGroup *Succ;
  26.         struct CMGroup *Prec;
  27.         UBYTE           Type;
  28.         UBYTE           Flags;
  29.         TEXT            Name[80];
  30.         struct MinList  Entries;
  31.         struct MinList  SubGroups;
  32. };
  33.  
  34. #define GRPF_BOLD       (1 << 0)
  35. #define GRPF_OPEN       (1 << 1)
  36.  
  37. struct CMUser {
  38.         struct CMUser  *Succ;
  39.         struct CMUser  *Prec;
  40.         UBYTE           Type;
  41.         UBYTE           Flags;
  42.         TEXT            Name[80];       //  FirstName
  43.         TEXT            Address[128];
  44.         TEXT            City[128];
  45.         TEXT            Country[80];
  46.         TEXT            ZIP[20];
  47.         TEXT            Comment[512];
  48.         TEXT            Alias[40];
  49.         TEXT            Phone[40];
  50.         TEXT            Fax[40];
  51.         TEXT            EMail[128];
  52.         TEXT            WWW[256];
  53.         TEXT            FTP[256];
  54.         TEXT            LastName[80];
  55.         TEXT            Mobile[40];
  56.         TEXT            ICQ[20];
  57.         TEXT            Company[40];    //  Business data
  58.         TEXT            BAddress[128];
  59.         TEXT            BCity[128];
  60.         TEXT            BCountry[80];
  61.         TEXT            BZIP[20];
  62.         TEXT            BPhone[40];
  63.         TEXT            BFax[40];
  64.         TEXT            BEMail[128];
  65.         TEXT            BJobTitle[20];
  66.         TEXT            BDepartment[40];
  67.         TEXT            BOffice[40];
  68.         struct CMImage *Image;
  69.         TEXT            PGPUserID[80];
  70.         TEXT            BMobile[40];
  71. };
  72.  
  73. struct CMWWW {
  74.         struct CMWWW       *Succ;
  75.         struct CMWWW       *Prec;
  76.         UBYTE               Type;
  77.         UBYTE               Flags;
  78.         TEXT                Name[80];
  79.         TEXT                WWW[256];
  80.         TEXT                Comment[512];
  81.         TEXT                WebMaster[80];
  82.         TEXT                EMail[128];
  83.         struct DateStamp    LastModified;
  84.         struct DateStamp    LastVisited;
  85.         TEXT                Alias[40];
  86. };
  87.  
  88. struct CMFTP {
  89.         struct CMFTP       *Succ;
  90.         struct CMFTP       *Prec;
  91.         UBYTE               Type;
  92.         UBYTE               Flags;
  93.         TEXT                Name[80];
  94.         TEXT                FTP[256];
  95.         TEXT                Comment[512];
  96.         TEXT                Username[60];
  97.         TEXT                Password[60];
  98.         ULONG               Port;
  99.         ULONG               Retries;
  100.         TEXT                Local[256];
  101.         struct DateStamp    LastModified;
  102.         struct DateStamp    LastVisited;
  103.         TEXT                Alias[40];
  104.         ULONG               ExtraFlags;     // lib v10
  105.         UWORD               WindowStyle;    // lib v10
  106. };
  107.  
  108. // flags
  109. #define FTPF_ADVANCED           (1 << 0)
  110. #define FTPF_QUIET              (1 << 1)
  111. #define FTPF_COMPRESS           (1 << 2)
  112. #define FTPF_ADT                (1 << 3)
  113. #define FTPF_ANONYMOUS          (1 << 4)
  114. #define FTPF_LOCAL              (1 << 5)
  115. #define FTPF_PROXY              (1 << 6)
  116. #define FTPF_SHOW_HIDDEN        (1 << 7)
  117.  
  118. // extra flags
  119. #define FTPEF_SHOW_FTP_OUTPUT   (1 << 0)
  120. #define FTPEF_NOOPS             (1 << 1)
  121.  
  122. // window style
  123. #define FTPWS_DUAL_LIST         0
  124. #define FTPWS_SINGLE_LIST       1
  125.  
  126. struct CMChat {
  127.         struct CMChat  *Succ;
  128.         struct CMChat  *Prec;
  129.         UBYTE           Type;
  130.         UBYTE           Flags;
  131.         TEXT            Channel[128];
  132.         TEXT            Server[128];
  133.         TEXT            Maintainer[80];
  134.         TEXT            Nick[20];
  135.         TEXT            WWW[256];
  136.         TEXT            Comment[512];
  137.         TEXT            Password[60];
  138. };
  139.  
  140. struct CMTelnet {
  141.         struct CMTelnet    *Succ;
  142.         struct CMTelnet    *Prec;
  143.         UBYTE               Type;
  144.         UBYTE               Flags;
  145.         TEXT                Host[80];
  146.         ULONG               Port;
  147.         TEXT                Login[80];
  148.         TEXT                Password[80];
  149.         TEXT                Comment[256];
  150. };
  151.  
  152. #define TNETF_SSH       (1 << 0)
  153.  
  154. struct CMImage {
  155.         struct CMImage *Succ;
  156.         struct CMImage *Prec;
  157.         UBYTE           Type;
  158.         UBYTE           Flags;
  159.         struct BitMap  *BitMap;
  160.         APTR            Colors;
  161. };
  162.  
  163.  
  164. /*
  165.  *          Structure to be passed to CM_LoadData(), CM_SaveData(), CM_FreeData()
  166.  */
  167.  
  168. struct CMDataOld {                          //  obsolete version, DON'T USE ANYMORE
  169.         struct CMGroup *Users;
  170.         struct CMGroup *WWWs;
  171.         struct CMGroup *FTPs;
  172.         struct CMGroup *Chat;
  173.         TEXT            CurrentUser[60];
  174.         TEXT            Path[256];
  175.         BOOL            FreeMe;
  176. };
  177.  
  178. struct CMData {
  179.         struct CMGroup *Users;
  180.         struct CMGroup *WWWs;
  181.         struct CMGroup *FTPs;
  182.         struct CMGroup *Chat;
  183.         TEXT            CurrentUser[60];    // set by CM_LoadCurrentUserData()
  184.         TEXT            Path[256];          // set by CM_LoadCurrentUserData()
  185.         BOOL            FreeMe;             // if TRUE, CM_FreeData() frees the structure as well
  186.         UWORD           Version;            // version of this structure, you MUST fill it
  187.         ULONG           SizeOf;             // *** PRIVATE ***
  188.         struct CMGroup *Telnet;
  189. };
  190.  
  191. #define CMD_CURRENT_VERSION     1
  192.  
  193. /*
  194.  *          Flags for CM_GetEntry()
  195.  */
  196.  
  197. #define CMGE_USER           (1 << 0)
  198. #define CMGE_WWW            (1 << 1)
  199. #define CMGE_FTP            (1 << 2)
  200. #define CMGE_CHAT           (1 << 3)
  201. #define CMGE_MULTISELECT    (1 << 4)    //  CM_GetEntry returns a struct MinList *
  202. #define CMGE_TELNET         (1 << 5)
  203.  
  204.  
  205.  
  206.  
  207.  
  208. /*
  209.  *          CManager PRIVATE stuff
  210.  */
  211.  
  212. #define ENTRY_NEW       (1 << 7)
  213.  
  214. enum {
  215.     SCP_WWW = 0, SCP_FTP, SCP_EMAIL,
  216.     SCP_PHONE, SCP_FAX, SCP_IRC, SCP_DOPUSFTP,
  217.     SCP_MOBILE, SCP_BUSINESS_EMAIL, SCP_BUSINESS_FAX,
  218.     SCP_BUSINESS_PHONE, SCP_BUSINESS_MOBILE
  219. };
  220.  
  221.  
  222. #define STACK_SWAPPED   (1 << 0)
  223. #define SEND_AREXX      (1 << 1)
  224. #ifndef SAVED
  225. #define SAVED           (1 << 2)
  226. #endif
  227. #define NO_LOGIN        (1 << 3)
  228. #define FIXED_LOGIN     (1 << 4)
  229. #define LOAD_FILE       (1 << 5)
  230.  
  231. extern struct CMGroup   Users;
  232. extern struct CMGroup   WWWs;
  233. extern struct CMGroup   FTPs;
  234. extern struct CMGroup   Chat;
  235.  
  236. extern TEXT             PubScreen[];
  237.  
  238.  
  239. #endif /* CMANAGER_H */
  240.